package com.gitee.wsl.compose.mvi.merge

import androidx.compose.material3.SwitchColors
import androidx.compose.runtime.Stable
import androidx.compose.ui.graphics.Color

class SwitchColorsMerger : ComponentMerger<SwitchColors> {
    override val default: SwitchColors = Default

    companion object {
        @Stable
        val Default =  SwitchColors(
        checkedThumbColor= Color.Unspecified,
        checkedTrackColor= Color.Unspecified,
        checkedBorderColor= Color.Unspecified,
        checkedIconColor= Color.Unspecified,
        uncheckedThumbColor= Color.Unspecified,
        uncheckedTrackColor= Color.Unspecified,
        uncheckedBorderColor= Color.Unspecified,
        uncheckedIconColor= Color.Unspecified,
        disabledCheckedThumbColor= Color.Unspecified,
        disabledCheckedTrackColor= Color.Unspecified,
        disabledCheckedBorderColor= Color.Unspecified,
        disabledCheckedIconColor= Color.Unspecified,
        disabledUncheckedThumbColor= Color.Unspecified,
        disabledUncheckedTrackColor= Color.Unspecified,
        disabledUncheckedBorderColor= Color.Unspecified,
        disabledUncheckedIconColor= Color.Unspecified
        )
    }
}

fun SwitchColors.copy(other:SwitchColors) = copy(
    checkedThumbColor = other.checkedThumbColor,
    checkedTrackColor = other.checkedTrackColor,
    checkedBorderColor = other.checkedBorderColor,
    checkedIconColor = other.checkedIconColor,
    uncheckedThumbColor = other.uncheckedThumbColor,
    uncheckedTrackColor = other.uncheckedTrackColor,
    uncheckedBorderColor = other.uncheckedBorderColor,
    uncheckedIconColor = other.uncheckedIconColor,
    disabledCheckedThumbColor = other.disabledCheckedThumbColor,
    disabledCheckedTrackColor = other.disabledCheckedTrackColor,
    disabledCheckedBorderColor = other.disabledCheckedBorderColor,
    disabledCheckedIconColor = other.disabledCheckedIconColor,
    disabledUncheckedThumbColor = other.disabledUncheckedThumbColor,
    disabledUncheckedTrackColor = other.disabledUncheckedTrackColor,
    disabledUncheckedBorderColor = other.disabledUncheckedBorderColor,
    disabledUncheckedIconColor = other.disabledUncheckedIconColor
)